#include <bits/stdc++.h>
#define loop(n) for(int i = 1; i <= n; i++)
#define rloop(n) for(int i = n; i >= 1; i--)
#define loop0(n) for(int i = 0; i < n; i++)
#define rloop0(n) for(int i = n-1; i >= 0; i--)
#define iloop(s,n,step) for(int i = s; i <= n; i+=step)
#define jloop(s,n,step) for(int j = s; j <= n; j+=step)
#define loopit(x) for(auto it = x.begin(); it!= x.end(); it++)
#define all(x) x.begin(),x.end()
using namespace std;
void fast(){
ios_base::sync_with_stdio(false);
cin.tie(0);
}
int buy[100005],sell[100005];
int main()
{
fast();
int tc = 1;
//cin >> tc;
while(tc--){
int n,s,p,x;
cin >> n >> s;
char c;
loop(n){
cin >> c >> p >> x;
if(c=='B') buy[p]+=x;
else sell[p]+=x;
}
vector<pair<int,int>> p1,p2;
loop0(100001){
if(buy[i]) p1.push_back({i,buy[i]});
if(sell[i]) p2.push_back({i,sell[i]});
}
sort(all(p1),greater<pair<int,int>>());
sort(all(p2));
int s1=p1.size(),s2=p2.size();
for(int i = min(s,s2)-1; i > -1; i--) cout << "S " << p2[i].first << " " << p2[i].second << '\n';
for(int i = 0; i < min(s,s1); i++) cout << "B " << p1[i].first << " " << p1[i].second << '\n';
}
return 0;
}
468. Validate IP Address | 450. Delete Node in a BST |
445. Add Two Numbers II | 442. Find All Duplicates in an Array |
437. Path Sum III | 436. Find Right Interval |
435. Non-overlapping Intervals | 406. Queue Reconstruction by Height |
380. Insert Delete GetRandom O(1) | 332. Reconstruct Itinerary |
368. Largest Divisible Subset | 377. Combination Sum IV |
322. Coin Change | 307. Range Sum Query - Mutable |
287. Find the Duplicate Number | 279. Perfect Squares |
275. H-Index II | 274. H-Index |
260. Single Number III | 240. Search a 2D Matrix II |
238. Product of Array Except Self | 229. Majority Element II |
222. Count Complete Tree Nodes | 215. Kth Largest Element in an Array |
198. House Robber | 153. Find Minimum in Rotated Sorted Array |
150. Evaluate Reverse Polish Notation | 144. Binary Tree Preorder Traversal |
137. Single Number II | 130. Surrounded Regions |